博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
15.5. Json 内容展示
阅读量:7097 次
发布时间:2019-06-28

本文共 4019 字,大约阅读时间需要 13 分钟。

Struts 配置文件

information

Action 文件

package cn.netkiller.action;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StringReader;import java.net.URL;import java.net.URLConnection;import java.nio.charset.Charset;import javax.json.Json;import javax.json.JsonObject;import javax.json.JsonReader;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionSupport;public class Infomation extends ActionSupport{	/**	 * 	 */	private static final long serialVersionUID = 1L;	private JsonObject jsonObject = null;	private String jsonString = "";	@Override	public String execute() throws IOException {				String URL = "http://inf.example.com/list/json/93/20/0.html";		System.out.printf("%s Requeted URL is %s", this.getClass().getName(), URL);				StringBuilder sb = new StringBuilder();		URLConnection urlConn = null;		InputStreamReader in = null;		try {			URL url = new URL(URL);			urlConn = url.openConnection();			if (urlConn != null)				urlConn.setReadTimeout(60 * 1000);			if (urlConn != null && urlConn.getInputStream() != null) {				in = new InputStreamReader(urlConn.getInputStream(), Charset.defaultCharset());				BufferedReader bufferedReader = new BufferedReader(in);				if (bufferedReader != null) {					int cp;					while ((cp = bufferedReader.read()) != -1) {						sb.append((char) cp);					}					bufferedReader.close();				}			}			in.close();			jsonString = sb.toString();			System.out.println(jsonString);			JsonReader reader = Json.createReader(new StringReader(jsonString));			JsonObject jsonObject = reader.readObject();			this.setJsonObject(jsonObject);			reader.close();			// System.out.println(jsonObject.size());			/*for (int i = 0; i < jsonObject.size() - 2; i++) {				JsonObject rowObject = jsonObject.getJsonObject(Integer.toString(i));				// System.out.println(rowObject.toString());				System.out.printf("%s\t%s\t%s\n", rowObject.getJsonString("id"), rowObject.getJsonString("title"),						rowObject.getJsonString("ctime"));			}*/								} catch (Exception e) {			throw new RuntimeException("Exception while calling URL:" + URL, e);		}		return Action.SUCCESS;	}	public JsonObject getJsonObject() {		return jsonObject;	}	public void setJsonObject(JsonObject jsonObject) {		this.jsonObject = jsonObject;	}	public String getJsonString() {		return jsonString;	}	public void setJsonString(String jsonString) {		this.jsonString = jsonString;	}}

JSP 文件

<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
${json.key+1} ${json.value.getJsonString("id")} ${json.value.getJsonString("title")} ${json.value.getJsonString("ctime")}
===================
${json.value.toString()}
===========

解决双引号问题

<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
">
首页上一页下一页尾页Count: ${pages.count}, Total: ${pages.total}

15.5.1. 禁止方法

@JSON(serialize = false)	public String getDatas() {		return datas;	}

使用 excludeProperties 在 Action 中排除

true
true
.*direction

15.5.2. 格式化日期

@JSON(format="yyyy-MM-dd") public Date getDate(){ 	return date; }

15.5.3. 重命名变量名

@JSON(name="mypassword") public String getPassword() { 	return password; }

15.5.4. org.apache.struts2.json

JSONUtil.serialize(sb.toString());JSONUtil.deserialize(sb.toString());

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

你可能感兴趣的文章
document.readyState和document.DOMContentLoaded判断DOM的加载完成
查看>>
2013年度中国优秀开源项目入围奖
查看>>
ural1517后缀数组
查看>>
函数sql黑马程序员——SQL常用函数
查看>>
thinkphp 前台html调用函数 格式化输出
查看>>
jquery 选择器大全
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串...
查看>>
JavaScript模板引擎原理,几行代码的事儿
查看>>
IOS7开发~Xcode5制作framework
查看>>
处理日期时间NSDate
查看>>
Razor视图引擎 语法学习
查看>>
WINDOWS之入侵痕迹清理总结
查看>>
把一个project相关的jar放到project的lib文件夹中
查看>>
Sublime Text2 Jsformat自定义使用之代码折叠方式修改
查看>>
OpenMP 中的线程任务调度
查看>>
用Qt写软件系列四:定制个性化系统托盘菜单
查看>>
pb将datawindow数据导出EXCEL
查看>>
POSIX 可移植操作系统接口
查看>>
Javascript获取IFrame内容(兼容IE&FF)
查看>>
[物理学与PDEs]书中出现的向量公式汇总
查看>>